package service.produtos;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;

import model.Farmacia;
import model.Item;
import model.produtos.Higiene;
import util.DataUtil;
import enumerations.HigieneType;

public class HigieneService {
	
	protected EntityManager entityManager;
	
	public HigieneService(EntityManager entityManager) {
		this.entityManager = entityManager;
	}
	
	public Higiene criaHigiene(HigieneType tipo,
			String nome, Long preco, int estoque, long dataFab) {
		Higiene higi = new Higiene();
		higi.setHigieneType(tipo);
		higi.setNome(nome);
		higi.setPrecoVenda(preco);
		higi.setQuantidadeEstoque(estoque);
		higi.setDataFabricacao(DataUtil.criaData(dataFab));
		
		insereHigiene(higi);
		return higi;
	}
	
	public Higiene alteraFarmacia(Long higId, Farmacia farmacia) {
		Higiene hig = entityManager.getReference(Higiene.class, higId);
		if (hig != null) {
			hig.setFarmacia(farmacia);
		}
		return hig;
	}
	
	public Higiene alteraItem(Long higId, Item item) {
		Higiene hig = entityManager.getReference(Higiene.class, higId);
		if (hig != null) {
			hig.setItem(item);
		}
		return hig;
	}
	
	public Higiene findHigiene(Long id) {
		Higiene Higiene = entityManager.getReference(Higiene.class, id);
		return Higiene;
	}
	
	public List<Higiene> listaHigienes() {
		TypedQuery<Higiene> query = entityManager.createQuery(
				"SELECT e FROM Higiene e", Higiene.class);
		return query.getResultList();
	}
	
	public void deletaHigienes() {
		TypedQuery<Higiene> query = entityManager.createQuery(
				"DELETE FROM Higiene", Higiene.class);
		query.executeUpdate();
	}
	
	public void insereHigiene(Higiene emp) {
		entityManager.persist(emp);
	}
	
	public void removeHigiene(Long id) {
		Higiene higi = findHigiene(id);
		if (higi != null) {
			entityManager.remove(higi);
		}
	}


}
